From 06418b32fec2eb350535e51f46ddee02e2ec1f7e Mon Sep 17 00:00:00 2001 From: "bren@br260.wolfson.cam.ac.uk" Date: Tue, 26 Apr 2005 22:12:54 +0000 Subject: [PATCH] bitkeeper revision 1.1385.1.2 (426ebce6uikcKvm56neQ1G3uFEGApw) Properly set memory parameters for newly created domains. Signed-off-by: Bin Ren --- tools/libxc/xc_domain.c | 2 +- xen/common/dom0_ops.c | 3 ++- xen/common/dom_mem_ops.c | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 1d8815a8a6..85bd481180 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -35,7 +35,7 @@ int xc_domain_create(int xc_handle, goto fail; if ( (err = do_dom_mem_op(xc_handle, MEMOP_increase_reservation, - NULL, mem_kb/4, 0, *pdomid)) != (mem_kb/4) ) + NULL, mem_kb/4 + 1, 0, *pdomid)) != (mem_kb/4) ) { if ( err > 0 ) errno = ENOMEM; diff --git a/xen/common/dom0_ops.c b/xen/common/dom0_ops.c index da454a479a..0d3966f994 100644 --- a/xen/common/dom0_ops.c +++ b/xen/common/dom0_ops.c @@ -411,7 +411,8 @@ long do_dom0_op(dom0_op_t *u_dom0_op) d = find_domain_by_id(op->u.setdomainmaxmem.domain); if ( d != NULL ) { - d->max_pages = op->u.setdomainmaxmem.max_memkb >> (PAGE_SHIFT-10); + d->max_pages = (op->u.setdomainmaxmem.max_memkb + + ((PAGE_SIZE-1)>>10)) >> (PAGE_SHIFT-10); put_domain(d); ret = 0; } diff --git a/xen/common/dom_mem_ops.c b/xen/common/dom_mem_ops.c index 698f6ee835..9b5d50cfc2 100644 --- a/xen/common/dom_mem_ops.c +++ b/xen/common/dom_mem_ops.c @@ -61,6 +61,9 @@ alloc_dom_mem(struct domain *d, return i; } + /* Initialise the machine-to-phys mapping for this page. */ + set_machinetophys(page_to_pfn(page), d->tot_pages - 1); + /* Inform the domain of the new page's machine address. */ if ( (extent_list != NULL) && (__put_user(page_to_pfn(page), &extent_list[i]) != 0) ) -- 2.30.2